package cn.wolfcode.service;


import cn.wolfcode.domain.OrderInfo;

/**
 * Created by wolfcode-lanxw
 */
public interface IOrderInfoService {

    /**
     * 生成订单
     * @param time
     * @param seckillId
     * @param phone
     * @return
     */
    String doSeckill(Integer time, Long seckillId, String phone);

    /**
     * 查询订单详细信息
     * @param seckillId
     * @param phone
     * @return
     */
    OrderInfo queryBySeckillIdAndUserId(Long seckillId, String phone);

    /**查询订单详细信息
     * @param orderNo
     * @return
     */
    OrderInfo find(String orderNo);

    /**
     * 超时未支付的订单取消逻辑
     * @param orderNo
     */
    void cancelOrderAndFallbackStockCount(String orderNo);

    /**
     * 支付宝支付
     * @param orderNo
     * @return
     */
    String payOnline(String orderNo);

    /**
     * 修改订单支付状态
     * @param orderNo
     * @param status
     * @param type
     * @return
     */
    int updateOrderStatus2Paid(String orderNo, Integer status, Integer type);

    /**
     * 在线支付退款
     * @param orderInfo
     */
    void refundOnline(OrderInfo orderInfo);

    /**
     * 积分支付
     * @param orderNo
     */
    void payIntegral(String orderNo);

    /**
     * 积分退款
     * @param orderInfo
     */
    void refundIntergral(OrderInfo orderInfo);
}
